GdkWindow: Default to unfocused
authorTimm Bäder <mail@baedert.org>
Tue, 18 Jul 2017 10:36:35 +0000 (12:36 +0200)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 20 Jul 2017 01:27:16 +0000 (21:27 -0400)
Don't set the have_focused field of the window's toplevel to TRUE by
default and don't set the FOCUSED state in gdk_window_map. This a means
toplevel window's state is what the WM expects, and the FOCUSED state
will be set anyway when we map the window and receive a _NET_WM_STATE
message.

gdk/gdkwindow.c
gdk/x11/gdkwindow-x11.c

index cbfbc02c7f67759701a022ffbf5eaaab94667d9a..04f488d2cf098fe35080f36025d1c46129d3a51a 100644 (file)
@@ -3585,9 +3585,9 @@ gdk_window_show_internal (GdkWindow *window, gboolean raise)
   if (gdk_window_has_impl (window))
     {
       if (!was_mapped)
-       gdk_synthesize_window_state (window,
-                                    GDK_WINDOW_STATE_WITHDRAWN,
-                                    GDK_WINDOW_STATE_FOCUSED);
+        gdk_synthesize_window_state (window,
+                                     GDK_WINDOW_STATE_WITHDRAWN,
+                                     0);
     }
   else
     {
index 2bf01f7ee6bd2e088e40b74c737f998b8cd3a6de..e76f3b5413c63018893862121733868ba814c570 100644 (file)
@@ -173,7 +173,7 @@ _gdk_x11_window_get_toplevel (GdkWindow *window)
   if (!impl->toplevel)
     {
       impl->toplevel = g_new0 (GdkToplevelX11, 1);
-      impl->toplevel->have_focused = TRUE;
+      impl->toplevel->have_focused = FALSE;
     }
 
   return impl->toplevel;